package com.example.permission.service;

import com.example.permission.entity.User;
import com.example.permission.entity.UserQuery;
import com.example.permission.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class UserService {
    // 自动注入UserMapper
    @Autowired
    private UserMapper userMapper;

    // 任务一：查询用户及其角色
    public User getUserWithRolesByUsername(String username) {
        return userMapper.selectUserWithRolesByUsername(username);
    }

    // 任务三：综合查询用户及其角色权限（处理分页偏移量）
    public List<User> getUsersWithRolesAndMenus(UserQuery query) {
        // 计算分页偏移量（确保页码为1时偏移量为0）
        int offset = (query.getPageNum() - 1) * query.getPageSize();
        // 防止负数偏移量（如果页码小于1，强制设为0）
        query.setPageNum(Math.max(offset, 0));
        return userMapper.selectUsersWithRolesAndMenus(query);
    }

    // 任务三：获取符合条件的用户总数
    public int getUserCount(UserQuery query) {
        return userMapper.selectUserCount(query);
    }
}